/**
 * 通用js方法封装处理
 * Copyright (c) 2019 ruoyi
 */

// const baseURL = process.env.VUE_APP_BASE_API

// 日期格式化
export function parseTime(time, pattern) {
  if (arguments.length === 0 || !time) {
    return null
  }
  const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
  let date
  if (typeof time === 'object') {
    date = time
  } else {
    if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
      time = parseInt(time)
    } else if (typeof time === 'string') {
      time = time.replace(new RegExp(/-/gm), '/')
    }
    if ((typeof time === 'number') && (time.toString().length === 10)) {
      time = time * 1000
    }
    date = new Date(time)
  }
  const formatObj = {
    y: date.getFullYear(),
    m: date.getMonth() + 1,
    d: date.getDate(),
    h: date.getHours(),
    i: date.getMinutes(),
    s: date.getSeconds(),
    a: date.getDay()
  }
  const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
    let value = formatObj[key]
    // Note: getDay() returns 0 on Sunday
    if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
    if (result.length > 0 && value < 10) {
      value = '0' + value
    }
    return value || 0
  })
  return time_str
}

// this.$nextTick(() => {
//   this.$refs[refName].resetFields()
// })
// nextTick 乱用，表单重置失败。先点击编辑按钮，关闭表单，然后点击新增按钮，就是第一次出现的数据
// 表单重置
export function resetForm(refName) {
  if (this.$refs[refName]) {
    this.$refs[refName].resetFields()
  }
}

// 回显数据字典
export function selectDictLabel(datas, value) {
  var actions = []
  Object.keys(datas).some((key) => {
    if (datas[key].value === ('' + value)) {
      actions.push(datas[key].label)
      return true
    }
  })
  return actions.join('')
}

// 字符串格式化(%s )
export function sprintf(str) {
  const args = arguments; let flag = true; let i = 1
  str = str.replace(/%s/g, function() {
    var arg = args[i++]
    if (typeof arg === 'undefined') {
      flag = false
      return ''
    }
    return arg
  })
  return flag ? str : ''
}

/**
 * 过滤数据 树形数据，数据是树形结构，如果父级数据被过滤，则该父级下所有子级数据也被过滤
 * @param {*} data 数据源
 * @param {*} id 当前节点id值
 */
export function excludeChild(data, id) {
  return data.filter(item => {
    return item.id !== id
  }).map(item => {
    if (item.children) {
      item.children = this.excludeChild(item.children, id)
    }
    return item
  })
}

// 拆分数据
// export function splitData(data) {
//   let url = ''
//   for (const k in data) {
//     if (data.hasOwnProperty(k)) {
//       const value = data[k] || ''
//       url = url + '&' + k + '=' + encodeURIComponent(value)
//     }
//   }
//   return url ? url.substring(1) : ''
// }

// // 通用下载方法
// export function download(url, data) {
//   window.location.href = baseURL + url + (url.indexOf('?') < 0 ? '?' : '&') + this.splitData(data)
// }

